// 导入 MyPromise
let MyPromise = require("./MyPromise")

// let promise = new MyPromise((res, err) => {
//     // setTimeout(() => {
//     //     res("延迟2s,成功状态...");
//     // }, 2000)
//     // throw new Error("error")
//     // res("成功状态");
//     err("失败状态")

// })

function p1 () {
    return new MyPromise(function (resolve, reject) {
      setTimeout( ()=> resolve('p1'), 2000)
    })
  }
  function p2 () {
    return new MyPromise(function (resolve, reject) {
    //   reject('失败')
      resolve('成功');  
    })
  }
// 10.catch 方法
p2().then(v=>{
    console.log(v)
     throw new Error("err")
})
.then()
.catch(e=>console.log(e))


// 9.finally 方法
// p2().finally(()=>{
//     console.log("finally")
//     return p1(); 
// }).then(v=>console.log(v),e=>console.log(e))


// 8. promise.resolve 方法
// MyPromise.resolve("aaa").then(v=>console.log(v));
// MyPromise.resolve( p1()).then(v=>console.log(v));

// 7.promise.all 方法

// MyPromise.all(['a','b',p1(),p2(),"c","d"]).then(value=>console.log(value))

//6. then 可选参数 promise.then().then().then(v=>console.log(v))

// promise.then().then().then(v=>console.log(v))
// promise.then().then().then(v=>console.log(v),e=>console.log(e))


//5. promise 链式调用 错误
// promise
// .then(value=>{
//     console.log(value);
//     // throw new Error("error ...")
//     return "promise"
// },err=>{
//     console.log(err);
//     // console.log(err.message);
//     // return 1000
// })
// .then(value=>{
//     console.log(value);
// })


// function pro(){
//     return new MyPromise((res,err)=>{
//         res("pro")
//     })
// }

// 4.promise 对象返回自己
// let p1= promise.then(v=>{
//     console.log(v);
//     return p1
// })
// p1.then(res=>{
//     console.log(res);
// },err=>{
//     console.log(err.message);
//     console.log(err);
// })

//3.then 链式调用  promise.then().then()
// promise.then(res=>{
//     console.log(res);
//     return 1000
// })
// .then(value =>{
//     console.log(value);
//     return pro();
// })
// .then(value =>{
//     console.log(value);
// })

// 2 promise 多次实用
// promise.then(value => {console.log(value)},
//     err => {console.log(err);})
// promise.then(value => {console.log(value)},
//     err => {console.log(err)})
    

// 1 简单测试 成功 ,失败,异步
// promise.then(value => {
//     console.log(value);
// }, err => {
//     console.log(err);
// })